package com.ant.storage.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 
 * </p>
 *
 * @author melon
 * @since 2023-11-24
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("invoice_info")
@ApiModel(value="InvoiceInfo对象", description="")
public class InvoiceInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty(value = "合同id")
    @TableField("house_lease_id")
    private Integer houseLeaseId;

    @ApiModelProperty(value = "父级id")
    @TableField("parent_id")
    private Integer parentId;

    @ApiModelProperty(value = "城市")
    @TableField("city_id")
    private Integer cityId;

    @ApiModelProperty(value = "部门")
    @TableField("dep_id")
    private Integer depId;

    @ApiModelProperty(value = "类型")
    @TableField("reimbursement_type")
    private Integer reimbursementType;

    @ApiModelProperty(value = "类型")
    @TableField(exist = false)
    private String reimbursementTypeText;

    @ApiModelProperty(value = "开始时间")
    @TableField("start_time")
    private String startTime;

    @ApiModelProperty(value = "截止时间")
    @TableField("end_time")
    private String endTime;

    @ApiModelProperty(value = "请款单号")
    @TableField("Invoice_number")
    private String invoiceNumber;

    @ApiModelProperty(value = "请款名称")
    @TableField("Invoice_name")
    private String invoiceName;

    @ApiModelProperty(value = "请款类型")
    @TableField("Invoice_type")
    private Integer invoiceType;

    @ApiModelProperty(value = "请款金额")
    @TableField("Invoice_price")
    private BigDecimal invoicePrice;

    @ApiModelProperty(value = "备注")
    @TableField("Invoice_notes")
    private String invoiceNotes;

    @ApiModelProperty(value = "状态")
    @TableField("Invoice_status")
    private Integer invoiceStatus;

    @ApiModelProperty(value = "钉钉审核状态 1 审核中 2 审核通过 3 审核拒绝")
    @TableField("audit_status")
    private Integer auditStatus;

    @ApiModelProperty(value = "0未报销  1 已提交 2 已报销")
    @TableField("is_reimburse")
    private Integer isReimburse;


    @ApiModelProperty(value = "是否结算 0未结算  1 已结算 2  取消")
    @TableField("is_balance")
    private Integer isBalance;

    @ApiModelProperty(value = "附件")
    @TableField("annex")
    private String annex;

    @ApiModelProperty(value = "附件")
    @TableField("annex")
    private List<PurchaserRecordImg> annexList;

    @ApiModelProperty(value = "紧急程度")
    @TableField("account_urgency")
    private String accountUrgency;

    @ApiModelProperty(value = "收款人")
    @TableField("account_name")
    private String accountName;

    @ApiModelProperty(value = "收款账户")
    @TableField("account_bank")
    private String accountBank;

    @ApiModelProperty(value = "收款账号")
    @TableField("account_number")
    private String accountNumber;

    @ApiModelProperty(value = "支付方式")
    @TableField("payment_method")
    private String paymentMethod;

    @ApiModelProperty(value = "收款账号")
    @TableField("process_instance_id")
    private String processInstanceId;

    @TableField("create_by")
    private String createBy;

    @TableField("creation_time")
    private Date creationTime;

    @ApiModelProperty(value = "审核人")
    @TableField(exist = false)
    private List<AuditList> auditList;

    @TableField(exist = false)
    private Integer isApproved;

    @ApiModelProperty(value = "审核人")
    @TableField(exist = false)
    private List<String> approval;

    @ApiModelProperty(value = "审核人")
    @TableField(exist = false)
    private List<String> notify;

    @TableField(exist = false)
    private List<ReimburseDetail> detailList;

    @ApiModelProperty(value = "附件id")
    @TableField(exist = false)
    private List<String> mediaId;

    @ApiModelProperty(value = "图片")
    @TableField(value = "annexs",exist = false)
    private  List<String> annexs;

    @TableField(exist = false)
    private String weChat;

    @TableField(exist = false)
    private String userName;

    @ApiModelProperty(value = "审核记录")
    @TableField(exist = false)
    private ApprovalMsg approvalMsgList;
}
